System and method for predicting and presenting a cross-sell product

ABSTRACT

A method for facilitating a price quote for a cross-sell product includes receiving an input indicating that a first price quote application associated with a first insurance product has been completed and, after receiving the input, directing a customer to a cross-sell bundle web page. The web page indicates a price quote for the first insurance product, and a message prompting the customer to begin a second price quote application associated with a second insurance product. The method also includes causing, using information obtained from the customer via the first price quote application, one or more information fields of the second price quote application to be populated, and calculating, based at least on information in the populated fields, a price quote for the second insurance product. The method also includes causing a the price quote for the second insurance product to be displayed to the customer.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 13/766,503, entitled “System and Method For Predicting AndPresenting A Cross-Sell Product” and filed on Feb. 13, 2013, the entiredisclosure of which is hereby incorporated by reference herein.

TECHNICAL FIELD

The present disclosure generally relates to a system and method forpredicting a potential product to sell to a customer and presenting theproduct to the customer at an opportune time to persuade the customer topurchase the product.

BACKGROUND

The background description provided herein is for the purpose ofgenerally presenting the context of the disclosure. Work of thepresently named inventors, to the extent it is described in thisbackground section, as well as aspects of the description that may nototherwise qualify as prior art at the time of filing, are neitherexpressly nor impliedly admitted as prior art against the presentdisclosure.

Many companies use online web stores to sell products which must beprice quoted, purchased, and/or updated based on customer specificinformation. Though this can be accomplished when a customer wishes toquote and/or purchase a single product, it becomes difficult andfrustrating when a customer wishes to buy numerous products, becausecustomers have to complete individual and separate transactions and/orrepeatedly enter the same information for each product. Accordingly,websites selling these products currently offer limited onlinefunctionality for the customer and do not proactively and intelligentlyengage online customers to purchase products based on their needs.Instead, providers rely heavily on sales associates (agents, staff, callcenters, etc.) to follow through with customers to promote and selladditional opportunities, services, and products.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

A company website using a centralized service with a next best messageprediction and presentation system can present a next best message, suchas a cross-sell message, to an online customer perusing the company sitethat can help the customer meet their purchasing needs by directing thecustomer through an online purchase quoting and purchasing session. Sucha system can facilitate customer interaction with the company websiteand can enable customers to complete multiple tasks in a singletransaction. The end to end processing of this online experience can bemanaged through a central cross-sell bundle page. The customer will havethe ability to select one or more products to price quote and/orpurchase, see the total discounts provided by purchasing groups ofspecific products, and respond to one or more next best messagespredicted and presented by the next best message prediction andpresentation system.

In one aspect, a method, implemented in a server, for facilitating aprice quote for a cross-sell product may include (1) receiving, by oneor more processors of the server, an input indicating that a first pricequote application associated with a first insurance product has beencompleted; (2) after receiving the input, directing, by the one or moreprocessors, a customer to a cross-sell bundle web page indicating (a) aprice quote for the first insurance product and (b) a first messageprompting the customer to begin a second price quote applicationassociated with a second insurance product; (3) causing, by the one ormore processors and using information obtained from the customer via thefirst price quote application, one or more information fields of thesecond price quote application to be populated; (4) calculating, by theone or more processors and based at least on information in thepopulated one or more information fields pertaining to the secondinsurance product, a price quote for the second insurance product;and/or (5) causing, by the one or more processors, a the price quote forthe second insurance product to be displayed to the customer.

In another aspect, a computer device for predicting a cross-sell productto be presented to a customer includes one or more processors and one ormore memories coupled to the one or more processors. The one or morememories store instructions that, when executed by the one or moreprocessors, cause the one or more processors to: (1) receive an inputindicating that a first price quote application associated with a firstinsurance product has been completed; (2) after receiving the input,direct the customer to a cross-sell bundle web page indicating (a) aprice quote for the first insurance product and (b) a first messageprompting the customer to begin a second price quote applicationassociated with a second insurance product; (3) cause, using informationobtained from the customer via the first price quote application, one ormore information fields of the second price quote application to bepopulated; (4) calculate, based at least on information in the populatedone or more information fields pertaining to the second insuranceproduct, a price quote for the second insurance product; and/or (5)cause a the price quote for the second insurance product to be displayedto the customer.

In another aspect, a non-transitory computer readable medium storesinstructions that, when executed by one or more processors, cause theone or more processors to: (1) receive an input indicating that a firstprice quote application associated with a first insurance product hasbeen completed; (2) after receiving the input, direct a customer to across-sell bundle web page indicating (a) a price quote for the firstinsurance product and (b) a first message prompting the customer tobegin a second price quote application associated with a secondinsurance product; (3) cause, using information obtained from thecustomer via the first price quote application, one or more informationfields of the second price quote application to be populated; (4)calculate, based at least on information in the populated one or moreinformation fields pertaining to the second insurance product, a pricequote for the second insurance product; and/or (5) cause a the pricequote for the second insurance product to be displayed to the customer.

The features and advantages described in this summary and the followingdetailed description are not all-inclusive. Many additional features andadvantages will be apparent to one of ordinary skill in the art in viewof the drawings, specification, and claims hereof.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified and exemplary block diagram of a system forpredicting and presenting a cross-sell product;

FIG. 2 is an exemplary architecture of server of a system for predictingand presenting a cross-sell product;

FIG. 3 is an exemplary layout of a cross-sell bundle page;

FIG. 4 is a flow chart illustrating a method for starting a price quoteapplication according to one embodiment of the present invention;

FIG. 5 is an exemplary layout of a cross-sell bundle page;

FIG. 6 is a flow chart illustrating an exemplary method for predictingand presenting an cross-sell product according to one embodiment of thepresent invention;

FIG. 7 is a flow chart illustrating an exemplary method for determininga preliminary price quote for a potential cross-sell product accordingto one embodiment of the present invention;

FIG. 8 is a flow chart illustrating an exemplary method for prompting acustomer to complete a price quote application is described;

FIG. 9 is a flow chart illustrating an exemplary method for presenting across-sell message is described according to one embodiment of thepresent invention;

FIG. 10 is a flow chart illustrating an exemplary method for presentinga cross-sell message is described according to another embodiment of thepresent invention;

FIG. 11 is a flow chart illustrating an exemplary method for presentinga cross-sell message is described according to yet another embodiment ofthe present invention;

FIG. 12 is a flow chart illustrating an exemplary method for predictingand presenting of an exemplary cross-sell product; and

The figures depict a preferred embodiment of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION

Although the following text sets forth a detailed description ofnumerous different embodiments, it should be understood that the legalscope of the description is defined by the words of the claims set forthat the end of this patent. The detailed description is to be construedas exemplary only and does not describe every possible embodiment sincedescribing every possible embodiment would be impractical, if notimpossible. Numerous alternative embodiments could be implemented, usingeither current technology or technology developed after the filing dateof this patent, which would still fall within the scope of the claims.

It should also be understood that, unless a term is expressly defined inthis patent using the sentence “As used herein, the term “” is herebydefined to mean . . . ” or a similar sentence, there is no intent tolimit the meaning of that term, either expressly or by implication,beyond its plain or ordinary meaning, and such term should not beinterpreted to be limited in scope based on any statement made in anysection of this patent (other than the language of the claims). To theextent that any term recited in the claims at the end of this patent isreferred to in this patent in a manner consistent with a single meaning,that is done for sake of clarity only so as to not confuse the reader,and it is not intended that such claim term be limited, by implicationor otherwise, to that single meaning. Finally, unless a claim element isdefined by reciting the word “means” and a function without the recitalof any structure, it is not intended that the scope of any claim elementbe interpreted based on the application of 35 U.S.C. § 112, sixthparagraph.

FIG. 1 illustrates various aspects of an exemplary architecture 100implementing a next best message prediction and presentation system. Thehigh-level architecture includes both hardware and softwareapplications, as well as various data communications channels forcommunicating data between the various hardware and software components.The next best message prediction and presentation system 100 may includevarious software and hardware components or modules that may employ amethod to predict and present a next best message to a customer. Thevarious modules may be implemented as computer-readable storage memoriescontaining computer-readable instructions (i.e., software) for executionby a processor of the computer system 100. The modules may perform thevarious tasks associated with gathering information relating toconsumers, presenting information to consumers about various products,predicting a next best message, such as a message presenting a potentialcross-sell product, to present to a customer and presenting the nextbest message to the consumer, as herein described. The computer system100 also includes both hardware and software applications, as well asvarious data communications channels for communicating data between thevarious hardware and software components. In an embodiment, customerinformation 124 may be retrieved from a customer answering one or morequestions pertaining to the customer himself and/or one or moreproducts. In alternate embodiment, customer information may be receivedfrom one or more third party databases or inputted by sales associates.The customer information storage 124 may be a part of a data server 122or may be a separate server with independent memory.

The prediction and presentation system 100 may include a computingdevice 108 that is capable of executing a graphical interface (GUI) 110for a prediction tool 112 and a presentation tool within a web browser114. Those skilled in the art will recognize that the present system canbe used in a dedicated application in addition to a web browser. In someembodiments, a computing device 108 executes instructions of anetwork-based data system 116 to receive prediction data 118 a,presentation data and other data 118 b at the front end components 102via the computer network 106 for display in the GUI 110. The front endcomponents 102 may receive the data 118 a, 118 b from the back endcomponents 104 via the computer network 106 from execution of aprediction and presentation tool 112. The device 108 may include apersonal computer, smart phone, tablet computer, or other suitablecomputing device. The GUI 110 may communicate with the system 116through the Internet 106 or other type of suitable network (e.g., localarea network (LAN), a metropolitan area network (MAN), a wide areanetwork (WAN), a mobile, a wired or wireless network, a private network,a virtual private network, etc.). A system server 120 may send andreceive information and data 118 a, 118 b, for the system 100 such ascomputer-executable instructions and data associated with applicationsexecuting on the computing device 108. The applications executing withinthe system 100 may include cloud-based applications, web-basedinterfaces to the data system 116, software applications executing onthe computing device 108, or applications including instructions thatare executed and/or stored within any component of the system 100. Theapplications, GUI 110, browser 114, and tool 112 may be stored invarious locations including separate repositories and physicallocations.

In some embodiments, the data system 116 in general and the server 120in particular may include computer-executable instructions 122. Theinstructions 122 may instantiate a prediction tool 112 and apresentation tool 112 or send instructions to the computing device 108to instantiate a GUI 110 for the tool 112 using a web browserapplication 114 of a computing device 108. In some embodiments, thebrowser application 114, GUI 110, a prediction tool 112 and apresentation tool 112, and elements of the data system 116 may beimplemented at least partially on the server 120. The data system 116and processor 126 may execute instructions 122 to display the GUI 110including the data 118 a, 118 b within a display of the computing device108. The GUI 110 may allow a customer to access various data 118 a, 118b within the data system 116, edit or add data to the system 100, andother actions with the system data.

The web server 102 may be implemented in one of several knownconfigurations via one or more servers configured to process web-basedtraffic received via the network 204 and may include load balancing,edge caching, proxy services, authentication services, etc.

The data server 122 may be connected to the web server 202 via a network226 and may implement the processes described above for predicting,presenting and storing the next best message.

Referring now to FIG. 2, a data server 120 includes a controller 228.The controller 228 includes a program memory 232, a microcontroller or amicroprocessor (R) 238, a random-access memory (RAM) 240, and aninput/output (I/O) circuit 230, all of which are interconnected via anaddress/data bus 244. The program memory 232 may storecomputer-executable instructions, which may be executed by themicroprocessor 238. In some embodiments, the controller 228 may alsoinclude, or otherwise be communicatively connected to, a database 242 orother data storage mechanism (e.g., one or more hard disk drives,optical storage drives, solid state storage devices, etc.). The database242 may include data such as customer questionnaires, if not implementedin the web server 202, etc. The database 242 may also includecustomer/consumer profile information for use in predicting, presentingand storing potential next best messages to present to the customer. Itshould be appreciated that although FIG. 1 depicts only onemicroprocessor 238, the controller 228 may include multiplemicroprocessors 238. Similarly, the memory 232 of the controller 228 mayinclude multiple RAMs 234 and multiple program memories 236, 236A and236B storing one or more corresponding server application modules,according to the controller's particular configuration. The data server222 may also include specific routines to render the data into an imagefor display by a client computer (not depicted) or any of the webdevices 210 via web server 202.

Although FIG. 2 depicts the I/O circuit 230 as a single block, the I/Ocircuit 230 may include a number of different types of I/O circuits (notdepicted), including but not limited to, additional load balancingequipment, firewalls, etc. The RAM(s) 234, 240 and the program memories236, 236A and 236B may be implemented in a known form of computerstorage media, including but not limited to, semiconductor memories,magnetically readable memories, and/or optically readable memories, forexample, but does not include transitory media such as carrier waves.

With reference to FIG. 3, a user interface of a cross-sell bundle webpage 300 may provide a customer a central location to manage a pluralityof products 306 selected by the customer for purchase. One or moreproducts 306 which have been selected by the customer for purchase maybe referred to as a bundle 308. The price of each product 306, however,may vary depending on a plurality of customer-specific information 310,such as a vehicle name or an address. Accordingly, the product 306 mayrequire a customer specific price quote 312. A price quote 312 may becalculated by a suitable back end system, such as the data server 120 ofFIG. 1. For example, in order to calculate a price quote 312 forautomobile insurance, the data server may require customer-specificinformation 310 regarding the model of the car. Other customer-specificinformation 310 may include, but is not limited to the value of the car,the mileage of the car, any prior accidents, as well as informationabout the residence of the primary customer of the car (not shown).

The cross-sell bundle page 300 may also display one or more potentialcross-sell messages 314 for one or more cross-sell products 316available for purchase from the company. The cross-sell message 314 mayalso contain a preliminary price quote 318. The cross-sell 300 bundlepage may also display a status message 318 for each product representingthe customers progress in completing an application to determine theprice quote 312 for the product 306. If customer-specific information310 about the customer in regards to one or more of the products 306 isalready known, the customer-specific information 310 may also bedisplayed on the cross-sell bundle page 300. If one or more productprice quotes 312 have been completed, the product price quote 312 mayalso be displayed on the cross-sell bundle page 300. Furthermore,depending on the products 306 which have been selected by the customerfor purchase, one or more discounts 320 may apply to one or moreproducts 306 in the bundle 308. Accordingly, any discounts 320 for whichthe products 306 are eligible are displayed on the cross-sell bundlepage 300 and may be represented by a numerical amount in one or morecurrencies and/or a percentage. The cross-sell bundle page may alsodisplay one or more company products 322 offered for sale by the companybut not in the bundle. Upon reviewing the cross-sell bundle page 300,the customer may make an input indicating a price quote application tobe started. In response to the selection, the customer may be directedto a first product question page.

With reference to FIG. 4, the system 100 described herein may beemployed in a method 400 (FIG. 4) to begin a price quote application. Ifa customer desires to purchase one or more products, the customer mayfirst need to receive one or more price quotes for the one or moreproducts the customer wishes to purchase. Accordingly, the customer mayselect a product to add to their bundle (block 402). The customer mayenter an input, via a mouse click, touch press, etc., representing theproduct to be selected. In response to a customer input representing theselection of a first product to be added to the bundle, the product maythen be added to the bundle (block 404). Once the customer has one ormore products in their bundle, the customer may select a product in theproduct bundle to receive a price quote (block 406). In response to acustomer input representing the selection of a first product to be pricequoted, a first price quote application is begun (block 408) and theuser is directed to a first question page, where the data server maygenerate and display one or more questions used to receive informationfrom the customer regarding the desired product. In alternateembodiments, the customer may directly begin the price quote applicationwithout first entering the product into their bundle.

For example, in FIG. 5, a first product question page 500 is shown witha plurality of questions 502 relating to the first product price quoteapplication, for example, an automobile insurance price quoteapplication. In one embodiment the first product question page 500 maybe a separate webpage. In an alternate embodiment, the plurality ofquestions 502 may load on the page the customer is currently viewing, orbe displayed in a pop up window. In yet another embodiment, the firstproduct question page 500 may be displayed by a discreet application,such as a web application, mobile device application or computing deviceapplication. The answers 504 to the plurality of questions 502 mayprovide a data server, such as the data server 120 of FIG. 1,information useful in calculating the price quote for the product (suchas the customer specific price quote 312 and product 306 of FIG. 3). Theplurality of questions 502 may be objective, such as yes or no, may besubjective and require the customer to input an answer and/or may have apredefined set of answers. The customer may answer the questions using avariety of input methods, such as check boxes, drop down menus and textboxes and may be inputted using a variety of input devices such as akeyboard, mouse, finger press, stylus input, etc.

FIG. 6 is a flowchart of a method, routine or process 600 for predictionand presentation of a cross-sell product for a customer. The method 600may be performed on one or more computers, such as the data serverillustrated in FIG. 1. A customer on a company web page or using adedicated application for purchasing products or services from thecompany may make a selection indicative of a decision to receive a quotefor a particular first product (block 602). Exemplary products mayinclude auto insurance, renter insurance, condo insurance, homeinsurance, vehicle loans, motorcycle insurance, life insurance, etc. Inresponse to the customer's selection, a first product quote applicationbegins and the customer is presented with a plurality of questions(block 604). The questions may relate to information about the firstproduct used by the data server in calculating a quote for the firstproduct. Exemplary questions may include a customer's age, address,square footage of a living area, make and model of a car, etc. When thecustomer has answered one or more of the questions they may press aproceed button or make some other input indicating they are ready toproceed. The data server then receives the input indicating that thecustomer is ready to submit the answers to the questions (block 606).The system will receive the input indicating that the customer is readyto submit the answers and upon receiving the input, the customer'sanswers are transmitted to the data server (block 608).

Once the data server has received the information which the customer hasentered, the data server may also query one or more third partydatabases in order to gather additional information about the customerin regards to the one or more potential cross-sell products (block 610).The data server may then use the information gathered from the customerand the 3^(rd) party DB to determine if any of the information isindicative of one or more other products or services offered by thecompany, but not selected by the customer, to add to their bundle (block612). The data server may determine, for example, that based on theinformation gathered, one or more products offered for sale by thecompany, but not selected by the customer, may be relevant to thecustomer (block 614). For example, in reference FIG. 3, while answeringthe plurality of questions relating to an auto insurance quote, the dataserver may receive an input indicated that the customer leases a car andrents an apartment. In response, the data server may recognize that thecompany offers a renters insurance product and/or a car loan product.The data server may then flag the one or more products as potentialcross-sell products for presentation to the customer for consideration(block 616).

The data server may also decide whether to present the information tothe customer for immediate consideration (block 618). If the data serverdecides to immediately present the information to the customer forimmediate consideration (YES block of 618), then the data servergenerates a display message to the customer promoting the cross-sellproduct (block 620). The message generated by the data server to promotethe potential cross-sell product may also include one or more potentialdiscounts for which the customer may be eligible for if the customerpurchases the first product and the one or more cross-sell products.

The data server may then receive an input representing a customerselection to add the one or more cross-sell products to their bundle.After receiving the input representing the selection, the data servermay receive an input indicating whether or not the customer wishes toadd the product to their bundle (block 622). If the data server receivesan indication that the customer does not wish to add the cross-sellproduct to their bundle (NO branch of block 622), the data server doesnot add the product to their bundle (block 624). The data server maythen send a message to the web server to no longer display thecross-sell message, and the price quote for the first product iscontinued (block 626). If the data server receives an indication thatthe customer wishes to add the cross-sell product to their bundle (YESbranch of block 622), the data server adds the product to their bundle(block 628). The data server may then send a message to the web serverto no longer display the cross-sell message and the price quote for thefirst product is continued (block 630).

When the web server receives an input indicating that the customer hascompleted the price quote application for the first product, the webserver may immediately direct the customer to a cross-sell price quoteapplication page in order to begin the price quote application for theone or more cross-sell products (block 632). In an alternate embodiment,the web server may first direct the customer to the cross-sell bundlepage and may direct the customer to a cross-sell price quote applicationupon receiving an input indicating a user input to begin the price quoteapplication for the cross-sell product. In yet another alternateembodiment, the web server may receive an input indicating a customer'sdesire to immediately start the price quote application for thecross-sell product upon being presented with the message promoting theone or more cross-sell products.

However, immediately presenting a message to a customer in this mannermay frustrate or confuse the customer, by drawing the customer'sattention away from the first price quote application they are currentlyprocessing and turning their attention to a different product other thanthe one the customer is currently processing. Furthermore, by the timethe customer has investigated the one or more cross-sell products, theymay have forgotten about or lost interest in completing the firstproduct price quote application. Accordingly, the data server may decidenot to immediately present the cross-sell product to the user (YESbranch of block 622) and the data server may store a value or otherindication representing that the one or more products are potentialcross-sell products for presentation to the customer at a later time(block 634). The data server may then determine whether to present amessage to the customer promoting the cross-sell product at a latertime. For example, once the web server has receives an input indicatingthat the customer has completed the price quote application for thefirst product (block 636), the web server may direct the customer to thecross-sell bundle page, where the data server may generate and display amessage identifying the one or more products in the customer's bundle(block 638).

Upon completing the first price quote application, the web server maydirect the customer to the cross-sell bundle page. Once the cross-sellbundle page has loaded, the data server may instruct the web server topresent one or more messages providing information about the cross-sellproduct and suggesting that the customer add the cross-sell product totheir bundle (block 640). If the data server has determined that theremay be more than one potential cross-sell product, all of the potentialcross-sell products may be displayed in the same message. Alternatively,the data server may generate and display multiple messages, wherein eachmessage contains a subset of the cross-sell products.

Advantageously, the data server may be able to use the information topresent a price quote to the customer as well as a potential discount tothe customer if the data server receives an input indicating that theuser has selected the cross-sell product to add to their bundle. In analternate embodiment the data server may generate and display one ormore messages promoting the potential cross-sell product at some othertime or through some other messaging interface, such as via an e-mailcommunication, text message, phone call, etc.

Turning now to FIG. 7 a flowchart of a method, routine or process 700for determining a preliminary price quote for a potential cross-sellproduct is described. A data server may determine if there is enoughinformation available to determine a price quote (block 702). Forexample, the data server may use available information in order toinstantly calculate a preliminary price quote to be included in thecross-sell message for presentation to the customer for the one or moreadditional cross-sell products. If the data server determines that thereis not enough information to calculate the price quote (NO branch ofblock 702), then the data server may end the routine (block 704). If thedata server determines that there is enough information to calculate theprice quote (YES branch of block 702), then the data server may check tosee if the data meets a time retirement (block 706). Because the pricequote may rely so heavily on certain data, if that data is out of date,the price quote could be miscalculated. For example, if the informationis less than 30 days old, the data server may determine the data meetsthe time requirement and is current.

Alternatively, if the data was more than 90 days old, the data serve maydetermine that the data does not meet the time requirement. If the datadoes not meet the requirement, (NO branch of block 706), then the dataserver may end the routine (block 708). If the data server determinesthat the data does meet the time requirement (YES branch of block 706),the data server may use the data to calculate a preliminary price quotefor the product (block 710). The data server may also calculate one ormore discounts which apply to the bundle and apply the discount to thepreliminary price quote (block 712). Then, the data server may generateand display a cross-sell message to the user, the cross-sell messageincluding the preliminary price quote and/or the discount (block 714).

Referring now to FIG. 8, a flowchart of a method, routine or process 800for presenting a cross-sell message is described in an embodiment wherea user has already purchased one or more products from a company.Accordingly, the customer may wish to edit information pertaining to afirst product. The edit may include removing, updating and/or addinginformation to the selected product/service. In response to receiving aninput indicating the first product the customer wishes to edit (block802), the customer may make the desired edits and the data server mayreceive an input indicating that the customer has completed editing theproduct/service (block 804). Once the data server has received an inputindicating that the information has been updated, the data server mayupdate the information pertaining to the first product, the informationpertaining to the price quote of the first product and any additionalproducts may (block 806). The data server may update one or moreapplicable discounts to the customer's product/service (block 808), andthe update may include the data server adding or removing one or morediscounts in response to the customer editing the information pertainingto the products/services. Furthermore, the data server may generate anddisplay a cross-sell message containing one or more cross-sell productsbased on the updated information (block 810).

Additionally, using the information linked to the customer account, thedata server may also display a cross-sell product price message (block812) including, for example, one or more preliminary price quotes forthe one or more products and one or more applicable discounts if thedata server receives an input indicating a customer's decision to addthe one or more cross-sell products to their bundle and purchase thecross-sell products.

Referring now to FIG. 9, a flowchart of a method, routine or process 900for presenting a cross-sell message is described. After receiving aninput indicting that a customer has completed the first quoteapplication (block 902), the data server may direct the customer to thecross-sell bundle page (block 904). The data server may also generateand display a status message relating to the first quote (block 906).For example, the status message may indicate that the quote iscompleted. Alternatively, if one or more of the quotes in the bundle arenot completed, a message may be generated and displayed which indicatesthat the product price quote application must be completed before thecustomer is allowed to purchase the products in the bundle. The dataserver may also display a message promoting one or more potentialcross-sell products which had been flagged by the data server earlier(block 908). The cross-sell message may indicate a preliminary pricequote of the product as well as one or more discounts which may beapplicable to the customer's bundle if the customer adds the cross-sellproduct to the bundle. The customer may then make an input indicating adecision to select an additional product to add to the bundle or maymake an input indicating that they wish to pay for the products in theirbundle.

Referring now to FIG. 10, a flowchart of a method, routine or process1000 for presenting a cross-sell message is described. If the customerdoes not wish to purchase a product after seeing the product pricequote, the customer may choose to remove one or more product quotes fromtheir bundle. If the server receives an input indicating a choice toremove a quote from the bundle (block 1002), the removed quote may beflagged by the data server as a removed quote (block 1004). The dataserver may display the removed quote (block 1006) on a portion of thecross-sell bundle page that displays one or more removed quotes.Accordingly, at some later time the data server may display a cross-sellmessage suggesting that a customer purchase one or more of the removedquotes (block 1008), and the data server may also a price messagedesignating one or more discounts which may apply to the customer'sbundle (block 1010) if the customer adds the one or more saved and/orremoved quotes to their bundle. The one or more discounts may berepresented by a dollar value or a percentage, in one or morecurrencies.

If a customer enters an input indicating the one or more removed quotesto re-add to their bundle (block 1012), the data server may generate anddisplay a message prompting a customer to review and update theinformation (block 1014), in case any data has changed since thecustomer created the saved or removed product price quote. The dataserver may determine that the information is current (block 1016) andthe one or more removed product quotes may be added to the bundle (block1018). For example, if the information is less than 30 days old, thedata server may determine the date is current enough. In response toputting the one or more saved or removed products in the bundle, thedata server may determine that one or more discounts may be applied tothe bundle (block 1020) and a total price may be updated (block 1022) bythe data server to include the price of the one or more saved and/orremoved product quotes and apply the one or more applicable discounts.In an alternate embodiment (not shown), the customer may remove the oneor more product price quotes from the bundle and save the one or moreproduct price quotes from the bundle and the saved quote(s) may beflagged by the data server as a saved quote. In yet another alternateembodiment not shown, the information may not be current and the dataserver may generate and display a message prompting a customer to editthe product information.

Referring now to FIG. 11, a flowchart of a method, routine or process1100 for prompting a customer to complete a price quote application isdescribed. In yet another embodiment, the data server may have onlycompleted the price quote application for the first product of aplurality of products in the bundle. After receiving an input that thefirst price quote has been completed(block 1102), the web server maydirect a customer to the cross-sell bundle page (block 1104), and thedata server may generate and display a message prompting the customer tobegin the price quote application for the second product (block 1106).Furthermore, the data server may begin to populate one or more fields ofinformation pertaining to the second product with the informationreceived from the first product (block 1108). One or more fields ofinformation pertaining to the second product price quote application maybe completed by the data server with information gathered from the oneor more databases, such as a publicly available database or a privatedatabase requiring payment to access data. Based on the fields ofinformation pertaining to the second product which have been populated,the data server may also calculate a preliminary price quote for thesecond product (block 1110). Accordingly, the data server may generateand display a preliminary price quote message containing the preliminaryprice quote (block 1112) and the data server may update one or morediscounts based on the preliminary price quote for the second product(block 1114).

Referring now to FIG. 12, a flowchart of a method, routine or process1200 for presenting a cross-sell message is described in an embodimentwhere a customer may have a customer account affiliated with a companywebsite. Upon being directed to the company website or dedicatedapplication by the web server (block 1202), the data server may promptthe customer to log in to the customer account (block 1204). In responsethe customer may enter credentials to log into their customer account(block 1206). Once the web serve has received an input indicated thatthe customer has entered their credentials, the web server may directthe customer to the cross-sell bundle page (block 1208) and the dataserver may also display a cross-sell message containing one or morecross-sell products based on customer information linked to the customeraccount (block 1210). Additionally, using the information linked to thecustomer account, the data server may also display a cross-sell productprice message (block 1212) including, for example, one or morepreliminary price quotes for the one or more products and one or moreapplicable discounts if the customer decides to add the one or morecross-sell products to their bundle and purchase the cross-sellproducts.

The following additional considerations apply to the foregoingdiscussion. Throughout this specification, plural instances mayimplement functions, components, operations, or structures described asa single instance. Although individual functions and instructions of oneor more methods are illustrated and described as separate operations,one or more of the individual operations may be performed concurrently,and nothing requires that the operations be performed in the orderillustrated. Structures and functionality presented as separatecomponents in example configurations may be implemented as a combinedstructure or component. Similarly, structures and functionalitypresented as a single component may be implemented as separatecomponents. These and other variations, modifications, additions, andimprovements fall within the scope of the subject matter herein.

The methods described in this application may include one or morefunctions or routines in the form of non-transitory computer-executableinstructions that are stored in a tangible computer-readable storagemedium and executed using a processor of a computing device (e.g., thecomputing device 102, the server 120, or any combination of computingdevices within the system 100). The routines may be included as part ofany of the modules described in relation to FIG. 1 or 2 or as part of amodule that is external to the system illustrated by FIGS. 1 and 2. Forexample, the methods may be part of a browser application or anapplication running on the computing device 102 as a plug-in or othermodule of the browser application. Further, the methods may be employedas “software-as-a-service” to provide a computing device 102 with accessto the data system 104.

Additionally, certain embodiments are described herein as includinglogic or a number of functions, components, modules, blocks, ormechanisms. Functions may constitute either software modules (e.g.,non-transitory code stored on a tangible machine-readable storagemedium) or hardware modules. A hardware module is a tangible unitcapable of performing certain operations and may be configured orarranged in a certain manner. In example embodiments, one or morecomputer systems (e.g., a standalone, client or server computer system)or one or more hardware modules of a computer system (e.g., a processoror a group of processors) may be configured by software (e.g., anapplication or application portion) as a hardware module that operatesto perform certain operations as described herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module maycomprise dedicated circuitry or logic that is permanently configured(e.g., as a special-purpose processor, such as a field programmable gatearray (FPGA) or an application-specific integrated circuit (ASIC) toperform certain functions. A hardware module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the term hardware should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired), or temporarily configured(e.g., programmed) to operate in a certain manner or to perform certainoperations described herein. Considering embodiments in which hardwaremodules are temporarily configured (e.g., programmed), each of thehardware modules need not be configured or instantiated at any oneinstance in time. For example, where the hardware modules comprise ageneral-purpose processor configured using software, the general-purposeprocessor may be configured as respective different hardware modules atdifferent times. Software may accordingly configure a processor, forexample, to constitute a particular hardware module at one instance oftime and to constitute a different hardware module at a differentinstance of time.

Hardware and software modules can provide information to, and receiveinformation from, other hardware and/or software modules. Accordingly,the described hardware modules may be regarded as being communicativelycoupled. Where multiple of such hardware or software modules existcontemporaneously, communications may be achieved through signaltransmission (e.g., over appropriate circuits and buses) that connectthe hardware or software modules. In embodiments in which multiplehardware modules or software are configured or instantiated at differenttimes, communications between such hardware or software modules may beachieved, for example, through the storage and retrieval of informationin memory structures to which the multiple hardware or software moduleshave access. For example, one hardware or software module may perform anoperation and store the output of that operation in a memory device towhich it is communicatively coupled. A further hardware or softwaremodule may then, at a later time, access the memory device to retrieveand process the stored output. Hardware and software modules may alsoinitiate communications with input or output devices, and can operate ona resource (e.g., a collection of information).

The various operations of example functions and methods described hereinmay be performed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods or functions described herein may be at leastpartially processor-implemented. For example, at least some of thefunctions of a method may be performed by one or processors orprocessor-implemented hardware modules. The performance of certain ofthe functions may be distributed among the one or more processors, notonly residing within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment or as a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of thefunctions may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., application program interfaces (APIs).

The performance of certain of the operations may be distributed amongthe one or more processors, not only residing within a single machine,but deployed across a number of machines. In some example embodiments,the one or more processors or processor-implemented modules may belocated in a single geographic location (e.g., within a homeenvironment, an office environment, or a server farm). In other exampleembodiments, the one or more processors or processor-implemented modulesmay be distributed across a number of geographic locations.

Some portions of this specification are presented in terms of algorithmsor symbolic representations of operations on data and data structuresstored as bits or binary digital signals within a machine memory (e.g.,a computer memory). These algorithms or symbolic representations areexamples of techniques used by those of ordinary skill in the dataprocessing arts to convey the substance of their work to others skilledin the art. As used herein, a “function” or an “algorithm” or a“routine” is a self-consistent sequence of operations or similarprocessing leading to a desired result. In this context, functions,algorithms, routines and operations involve physical manipulation ofphysical quantities. Typically, but not necessarily, such quantities maytake the form of electrical, magnetic, or optical signals capable ofbeing stored, accessed, transferred, combined, compared, or otherwisemanipulated by a machine. It is convenient at times, principally forreasons of common usage, to refer to such signals using words such as“data,” “content,” “bits,” “values,” “elements,” “symbols,”“characters,” “terms, ” “numbers,” “numerals,” or the like. These words,however, are merely convenient labels and are to be associated withappropriate physical quantities.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting, ” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or a combination thereof), registers, or othermachine components that receive, store, transmit, or displayinformation.

As used herein any reference to “some embodiments” or “one embodiment”or “an embodiment” means that a particular element, feature, structure,or characteristic described in connection with the embodiment isincluded in at least one embodiment. The appearances of the phrase “inone embodiment” in various places in the specification are notnecessarily all referring to the same embodiment.

Some embodiments may be described using the expression “ coupled” and“connected” along with their derivatives. For example, some embodimentsmay be described using the term “coupled” to indicate that two or moreelements are in direct physical or electrical contact. The term“coupled,” however, may also mean that two or more elements are not indirect contact with each other, but yet still co-operate or interactwith each other. The embodiments are not limited in this context.

As used herein, the terms “comprises,” “ comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a function,process, method, article, or apparatus that comprises a list of elementsis not necessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the description. Thisdescription should be read to include one or at least one and thesingular also includes the plural unless it is obvious that it is meantotherwise.

Still further, the figures depict preferred embodiments of a computersystem 100 for purposes of illustration only. One of ordinary skill inthe art will readily recognize from the following discussion thatalternative embodiments of the structures and methods illustrated hereinmay be employed without departing from the principles described herein.

Upon reading this disclosure, those of skill in the art will appreciatestill additional alternative structural and functional designs for asystem and a process for segmenting a customer base and implementingspecific behaviors for each customer segment through the disclosedprinciples herein. Thus, while particular embodiments and applicationshave been illustrated and described, it is to be understood that thedisclosed embodiments are not limited to the precise construction andcomponents disclosed herein. Various modifications, changes andvariations, which will be apparent to those skilled in the art, may bemade in the arrangement, operation and details of the method andapparatus disclosed herein without departing from the spirit and scopedefined in the appended claims.

To the extent that any meaning or definition of a term in this documentconflicts with any meaning or definition of the same term in a documentincorporated by reference, the meaning or definition assigned to thatterm in this document shall govern. The detailed description is to beconstrued as exemplary only and does not describe every possibleembodiment since describing every possible embodiment would beimpractical, if not impossible. Numerous alternative embodiments couldbe implemented, using either current technology or technology developedafter the filing date of this patent, which would still fall within thescope of the claims. While particular embodiments of the presentinvention have been illustrated and described, it would be obvious tothose skilled in the art that various other changes and modificationscan be made without departing from the spirit and scope of theinvention. It is therefore intended to cover in the appended claims allsuch changes and modifications that are within the scope of thisinvention.

We claim:
 1. A method, implemented in a server, for facilitating a pricequote for a cross-sell product, the method comprising: receiving, by oneor more processors of the server, an input indicating that a first pricequote application associated with a first insurance product has beencompleted; after receiving the input, directing, by the one or moreprocessors, a customer to a cross-sell bundle web page indicating (i) aprice quote for the first insurance product and (ii) a first messageprompting the customer to begin a second price quote applicationassociated with a second insurance product; causing, by the one or moreprocessors and using information obtained from the customer via thefirst price quote application, one or more information fields of thesecond price quote application to be populated; calculating, by the oneor more processors and based at least on information in the populatedone or more information fields pertaining to the second insuranceproduct, a price quote for the second insurance product; and causing, bythe one or more processors, a the price quote for the second insuranceproduct to be displayed to the customer.
 2. The method of claim 1,further comprising: causing, by the one or more processors and usinginformation received from one or more third party databases, one or moreadditional information fields pertaining to the second insurance productto be populated on the cross-sell web page.
 3. The method of claim 1,further comprising, prior to receiving the input: communicating aplurality of questions to the customer via the first price quoteapplication, wherein the plurality of questions relate to the firstinsurance product; and receiving a plurality of customer responses tothe plurality of questions via the first price quote application,wherein the information obtained from the customer includes at least oneof the plurality of customer responses.
 4. The method of claim 1,further comprising: determining, by the one or more processors andbefore calculating the price quote for the second insurance product,whether there is enough information available to determine the pricequote for the second insurance product.
 5. The method of claim 1,further comprising: determining, by the one or more processors andbefore calculating the price quote for the second insurance product,whether information that can be used to determine the price quote forthe second insurance product meets a time requirement.
 6. The method ofclaim 1, further comprising: receiving, by the one or more processors,an input from the customer indicating a choice to remove the price quotefor the second insurance product from a first portion of the cross-sellweb page; and in response to receiving the input from the customer,moving, by the one or more processors, the price quote for the secondinsurance product from the first portion of the cross-sell web page to asecond portion of the cross-sell web page.
 7. The method of claim 6,further comprising: receiving, by the one or more processors, anadditional input from the customer indicating a choice to add the pricequote for the second insurance product back to the first portion of thecross-sell web page; and in response to receiving the additional inputfrom the customer, moving, by the one or more processors, the pricequote for the second insurance product from the second portion of thecross-sell web page to the first portion of the cross-sell web page. 8.A computer device for predicting a cross-sell product to be presented toa customer, the computer device comprising; one or more processors; andone or more memories coupled to the one or more processors, wherein theone or more memories store instructions that, when executed by the oneor more processors, cause the one or more processors to receive an inputindicating that a first price quote application associated with a firstinsurance product has been completed, after receiving the input, directthe customer to a cross-sell bundle web page indicating (i) a pricequote for the first insurance product and (ii) a first message promptingthe customer to begin a second price quote application associated with asecond insurance product, cause, using information obtained from thecustomer via the first price quote application, one or more informationfields of the second price quote application to be populated, calculate,based at least on information in the populated one or more informationfields pertaining to the second insurance product, a price quote for thesecond insurance product, and cause a the price quote for the secondinsurance product to be displayed to the customer.
 9. The computerdevice of claim 8, wherein the instructions further cause the one ormore processors to: cause, using information received from one or morethird party databases, one or more additional information fieldspertaining to the second insurance product to be populated on thecross-sell web page.
 10. The computer device of claim 8, wherein theinstructions further cause the one or more processors to, prior toreceiving the input: communicate a plurality of questions to thecustomer via the first price quote application, wherein the plurality ofquestions relate to the first insurance product; and receive a pluralityof customer responses to the plurality of questions via the first pricequote application, wherein the information obtained from the customerincludes at least one of the plurality of customer responses.
 11. Thecomputer device of claim 8, wherein the instructions further cause theone or more processors to: determine, before calculating the price quotefor the second insurance product, whether there is enough informationavailable to determine the price quote for the second insurance product.12. The computer device of claim 8, wherein the instructions furthercause the one or more processors to: determine, before calculating theprice quote for the second insurance product, whether information thatcan be used to determine the price quote for the second insuranceproduct meets a time requirement.
 13. The computer device of claim 8,wherein the instructions further cause the one or more processors to:receive an input from the customer indicating a choice to remove theprice quote for the second insurance product from a first portion of thecross-sell web page; and in response to receiving the input from thecustomer, move the price quote for the second insurance product from thefirst portion of the cross-sell web page to a second portion of thecross-sell web page.
 14. The computer device of claim 13, wherein theinstructions further cause the one or more processors to: receive anadditional input from the customer indicating a choice to add the pricequote for the second insurance product back to the first portion of thecross-sell web page; and in response to receiving the additional inputfrom the customer, move the price quote for the second insurance productfrom the second portion of the cross-sell web page to the first portionof the cross-sell web page.
 15. A non-transitory computer readablemedium storing instructions that, when executed by one or moreprocessors, cause the one or more processors to: receive an inputindicating that a first price quote application associated with a firstinsurance product has been completed; after receiving the input, directa customer to a cross-sell bundle web page indicating (i) a price quotefor the first insurance product and (ii) a first message prompting thecustomer to begin a second price quote application associated with asecond insurance product; cause, using information obtained from thecustomer via the first price quote application, one or more informationfields of the second price quote application to be populated; calculate,based at least on information in the populated one or more informationfields pertaining to the second insurance product, a price quote for thesecond insurance product; and cause a the price quote for the secondinsurance product to be displayed to the customer.
 16. Thenon-transitory computer readable medium of claim 15, wherein theinstructions further cause the one or more processors to: cause, usinginformation received from one or more third party databases, one or moreadditional information fields pertaining to the second insurance productto be populated on the cross-sell web page.
 17. The non-transitorycomputer readable medium of claim 15, wherein the instructions furthercause the one or more processors to, prior to receiving the input:communicate a plurality of questions to the customer via the first pricequote application, wherein the plurality of questions relate to thefirst insurance product; and receive a plurality of customer responsesto the plurality of questions via the first price quote application,wherein the information obtained from the customer includes at least oneof the plurality of customer responses.
 18. The non-transitory computerreadable medium of claim 15, wherein the instructions further cause theone or more processors to: determine, before calculating the price quotefor the second insurance product, whether information that can be usedto determine the price quote for the second insurance product meets atime requirement.
 19. The non-transitory computer readable medium ofclaim 15, wherein the instructions further cause the one or moreprocessors to: receive an input from the customer indicating a choice toremove the price quote for the second insurance product from a firstportion of the cross-sell web page; and in response to receiving theinput from the customer, move the price quote for the second insuranceproduct from the first portion of the cross-sell web page to a secondportion of the cross-sell web page.
 20. The non-transitory computerreadable medium of claim 15, wherein the instructions further cause theone or more processors to: receive an additional input from the customerindicating a choice to add the price quote for the second insuranceproduct back to the first portion of the cross-sell web page; and inresponse to receiving the additional input from the customer, move theprice quote for the second insurance product from the second portion ofthe cross-sell web page to the first portion of the cross-sell web page.